/*
 * XML Type:  Investment401k
 * Namespace: http://ofx.net/types/2003/04
 * Java type: net.ofx.types.x2003.x04.Investment401K
 *
 * Automatically generated - do not modify.
 */
package net.ofx.types.x2003.x04.impl;
/**
 * An XML Investment401k(@http://ofx.net/types/2003/04).
 *
 * This is a complex type.
 */
public class Investment401KImpl extends org.apache.xmlbeans.impl.values.XmlComplexContentImpl implements net.ofx.types.x2003.x04.Investment401K
{
    
    public Investment401KImpl(org.apache.xmlbeans.SchemaType sType)
    {
        super(sType);
    }
    
    private static final javax.xml.namespace.QName EMPLOYERNAME$0 = 
        new javax.xml.namespace.QName("", "EMPLOYERNAME");
    private static final javax.xml.namespace.QName PLANID$2 = 
        new javax.xml.namespace.QName("", "PLANID");
    private static final javax.xml.namespace.QName PLANJOINDATE$4 = 
        new javax.xml.namespace.QName("", "PLANJOINDATE");
    private static final javax.xml.namespace.QName EMPLOYERCONTACTINFO$6 = 
        new javax.xml.namespace.QName("", "EMPLOYERCONTACTINFO");
    private static final javax.xml.namespace.QName BROKERCONTACTINFO$8 = 
        new javax.xml.namespace.QName("", "BROKERCONTACTINFO");
    private static final javax.xml.namespace.QName DEFERPCTPRETAX$10 = 
        new javax.xml.namespace.QName("", "DEFERPCTPRETAX");
    private static final javax.xml.namespace.QName DEFERPCTAFTERTAX$12 = 
        new javax.xml.namespace.QName("", "DEFERPCTAFTERTAX");
    private static final javax.xml.namespace.QName MATCHINFO$14 = 
        new javax.xml.namespace.QName("", "MATCHINFO");
    private static final javax.xml.namespace.QName CONTRIBINFO$16 = 
        new javax.xml.namespace.QName("", "CONTRIBINFO");
    private static final javax.xml.namespace.QName CURRENTVESTPCT$18 = 
        new javax.xml.namespace.QName("", "CURRENTVESTPCT");
    private static final javax.xml.namespace.QName VESTINFO$20 = 
        new javax.xml.namespace.QName("", "VESTINFO");
    private static final javax.xml.namespace.QName LOANINFO$22 = 
        new javax.xml.namespace.QName("", "LOANINFO");
    private static final javax.xml.namespace.QName INV401KSUMMARY$24 = 
        new javax.xml.namespace.QName("", "INV401KSUMMARY");
    
    
    /**
     * Gets the "EMPLOYERNAME" element
     */
    public java.lang.String getEMPLOYERNAME()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(EMPLOYERNAME$0, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "EMPLOYERNAME" element
     */
    public net.ofx.types.x2003.x04.GenericNameType xgetEMPLOYERNAME()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.GenericNameType target = null;
            target = (net.ofx.types.x2003.x04.GenericNameType)get_store().find_element_user(EMPLOYERNAME$0, 0);
            return target;
        }
    }
    
    /**
     * Sets the "EMPLOYERNAME" element
     */
    public void setEMPLOYERNAME(java.lang.String employername)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(EMPLOYERNAME$0, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(EMPLOYERNAME$0);
            }
            target.setStringValue(employername);
        }
    }
    
    /**
     * Sets (as xml) the "EMPLOYERNAME" element
     */
    public void xsetEMPLOYERNAME(net.ofx.types.x2003.x04.GenericNameType employername)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.GenericNameType target = null;
            target = (net.ofx.types.x2003.x04.GenericNameType)get_store().find_element_user(EMPLOYERNAME$0, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.GenericNameType)get_store().add_element_user(EMPLOYERNAME$0);
            }
            target.set(employername);
        }
    }
    
    /**
     * Gets the "PLANID" element
     */
    public java.lang.String getPLANID()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(PLANID$2, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "PLANID" element
     */
    public net.ofx.types.x2003.x04.IdType xgetPLANID()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.IdType target = null;
            target = (net.ofx.types.x2003.x04.IdType)get_store().find_element_user(PLANID$2, 0);
            return target;
        }
    }
    
    /**
     * True if has "PLANID" element
     */
    public boolean isSetPLANID()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(PLANID$2) != 0;
        }
    }
    
    /**
     * Sets the "PLANID" element
     */
    public void setPLANID(java.lang.String planid)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(PLANID$2, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(PLANID$2);
            }
            target.setStringValue(planid);
        }
    }
    
    /**
     * Sets (as xml) the "PLANID" element
     */
    public void xsetPLANID(net.ofx.types.x2003.x04.IdType planid)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.IdType target = null;
            target = (net.ofx.types.x2003.x04.IdType)get_store().find_element_user(PLANID$2, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.IdType)get_store().add_element_user(PLANID$2);
            }
            target.set(planid);
        }
    }
    
    /**
     * Unsets the "PLANID" element
     */
    public void unsetPLANID()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(PLANID$2, 0);
        }
    }
    
    /**
     * Gets the "PLANJOINDATE" element
     */
    public java.lang.String getPLANJOINDATE()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(PLANJOINDATE$4, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "PLANJOINDATE" element
     */
    public net.ofx.types.x2003.x04.DateTimeType xgetPLANJOINDATE()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.DateTimeType target = null;
            target = (net.ofx.types.x2003.x04.DateTimeType)get_store().find_element_user(PLANJOINDATE$4, 0);
            return target;
        }
    }
    
    /**
     * True if has "PLANJOINDATE" element
     */
    public boolean isSetPLANJOINDATE()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(PLANJOINDATE$4) != 0;
        }
    }
    
    /**
     * Sets the "PLANJOINDATE" element
     */
    public void setPLANJOINDATE(java.lang.String planjoindate)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(PLANJOINDATE$4, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(PLANJOINDATE$4);
            }
            target.setStringValue(planjoindate);
        }
    }
    
    /**
     * Sets (as xml) the "PLANJOINDATE" element
     */
    public void xsetPLANJOINDATE(net.ofx.types.x2003.x04.DateTimeType planjoindate)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.DateTimeType target = null;
            target = (net.ofx.types.x2003.x04.DateTimeType)get_store().find_element_user(PLANJOINDATE$4, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.DateTimeType)get_store().add_element_user(PLANJOINDATE$4);
            }
            target.set(planjoindate);
        }
    }
    
    /**
     * Unsets the "PLANJOINDATE" element
     */
    public void unsetPLANJOINDATE()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(PLANJOINDATE$4, 0);
        }
    }
    
    /**
     * Gets the "EMPLOYERCONTACTINFO" element
     */
    public java.lang.String getEMPLOYERCONTACTINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(EMPLOYERCONTACTINFO$6, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "EMPLOYERCONTACTINFO" element
     */
    public net.ofx.types.x2003.x04.GenericContactInfoType xgetEMPLOYERCONTACTINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.GenericContactInfoType target = null;
            target = (net.ofx.types.x2003.x04.GenericContactInfoType)get_store().find_element_user(EMPLOYERCONTACTINFO$6, 0);
            return target;
        }
    }
    
    /**
     * True if has "EMPLOYERCONTACTINFO" element
     */
    public boolean isSetEMPLOYERCONTACTINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(EMPLOYERCONTACTINFO$6) != 0;
        }
    }
    
    /**
     * Sets the "EMPLOYERCONTACTINFO" element
     */
    public void setEMPLOYERCONTACTINFO(java.lang.String employercontactinfo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(EMPLOYERCONTACTINFO$6, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(EMPLOYERCONTACTINFO$6);
            }
            target.setStringValue(employercontactinfo);
        }
    }
    
    /**
     * Sets (as xml) the "EMPLOYERCONTACTINFO" element
     */
    public void xsetEMPLOYERCONTACTINFO(net.ofx.types.x2003.x04.GenericContactInfoType employercontactinfo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.GenericContactInfoType target = null;
            target = (net.ofx.types.x2003.x04.GenericContactInfoType)get_store().find_element_user(EMPLOYERCONTACTINFO$6, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.GenericContactInfoType)get_store().add_element_user(EMPLOYERCONTACTINFO$6);
            }
            target.set(employercontactinfo);
        }
    }
    
    /**
     * Unsets the "EMPLOYERCONTACTINFO" element
     */
    public void unsetEMPLOYERCONTACTINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(EMPLOYERCONTACTINFO$6, 0);
        }
    }
    
    /**
     * Gets the "BROKERCONTACTINFO" element
     */
    public java.lang.String getBROKERCONTACTINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(BROKERCONTACTINFO$8, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "BROKERCONTACTINFO" element
     */
    public net.ofx.types.x2003.x04.GenericContactInfoType xgetBROKERCONTACTINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.GenericContactInfoType target = null;
            target = (net.ofx.types.x2003.x04.GenericContactInfoType)get_store().find_element_user(BROKERCONTACTINFO$8, 0);
            return target;
        }
    }
    
    /**
     * True if has "BROKERCONTACTINFO" element
     */
    public boolean isSetBROKERCONTACTINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(BROKERCONTACTINFO$8) != 0;
        }
    }
    
    /**
     * Sets the "BROKERCONTACTINFO" element
     */
    public void setBROKERCONTACTINFO(java.lang.String brokercontactinfo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(BROKERCONTACTINFO$8, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(BROKERCONTACTINFO$8);
            }
            target.setStringValue(brokercontactinfo);
        }
    }
    
    /**
     * Sets (as xml) the "BROKERCONTACTINFO" element
     */
    public void xsetBROKERCONTACTINFO(net.ofx.types.x2003.x04.GenericContactInfoType brokercontactinfo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.GenericContactInfoType target = null;
            target = (net.ofx.types.x2003.x04.GenericContactInfoType)get_store().find_element_user(BROKERCONTACTINFO$8, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.GenericContactInfoType)get_store().add_element_user(BROKERCONTACTINFO$8);
            }
            target.set(brokercontactinfo);
        }
    }
    
    /**
     * Unsets the "BROKERCONTACTINFO" element
     */
    public void unsetBROKERCONTACTINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(BROKERCONTACTINFO$8, 0);
        }
    }
    
    /**
     * Gets the "DEFERPCTPRETAX" element
     */
    public java.lang.String getDEFERPCTPRETAX()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(DEFERPCTPRETAX$10, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "DEFERPCTPRETAX" element
     */
    public net.ofx.types.x2003.x04.RateType xgetDEFERPCTPRETAX()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.RateType target = null;
            target = (net.ofx.types.x2003.x04.RateType)get_store().find_element_user(DEFERPCTPRETAX$10, 0);
            return target;
        }
    }
    
    /**
     * True if has "DEFERPCTPRETAX" element
     */
    public boolean isSetDEFERPCTPRETAX()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(DEFERPCTPRETAX$10) != 0;
        }
    }
    
    /**
     * Sets the "DEFERPCTPRETAX" element
     */
    public void setDEFERPCTPRETAX(java.lang.String deferpctpretax)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(DEFERPCTPRETAX$10, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(DEFERPCTPRETAX$10);
            }
            target.setStringValue(deferpctpretax);
        }
    }
    
    /**
     * Sets (as xml) the "DEFERPCTPRETAX" element
     */
    public void xsetDEFERPCTPRETAX(net.ofx.types.x2003.x04.RateType deferpctpretax)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.RateType target = null;
            target = (net.ofx.types.x2003.x04.RateType)get_store().find_element_user(DEFERPCTPRETAX$10, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.RateType)get_store().add_element_user(DEFERPCTPRETAX$10);
            }
            target.set(deferpctpretax);
        }
    }
    
    /**
     * Unsets the "DEFERPCTPRETAX" element
     */
    public void unsetDEFERPCTPRETAX()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(DEFERPCTPRETAX$10, 0);
        }
    }
    
    /**
     * Gets the "DEFERPCTAFTERTAX" element
     */
    public java.lang.String getDEFERPCTAFTERTAX()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(DEFERPCTAFTERTAX$12, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "DEFERPCTAFTERTAX" element
     */
    public net.ofx.types.x2003.x04.RateType xgetDEFERPCTAFTERTAX()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.RateType target = null;
            target = (net.ofx.types.x2003.x04.RateType)get_store().find_element_user(DEFERPCTAFTERTAX$12, 0);
            return target;
        }
    }
    
    /**
     * True if has "DEFERPCTAFTERTAX" element
     */
    public boolean isSetDEFERPCTAFTERTAX()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(DEFERPCTAFTERTAX$12) != 0;
        }
    }
    
    /**
     * Sets the "DEFERPCTAFTERTAX" element
     */
    public void setDEFERPCTAFTERTAX(java.lang.String deferpctaftertax)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(DEFERPCTAFTERTAX$12, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(DEFERPCTAFTERTAX$12);
            }
            target.setStringValue(deferpctaftertax);
        }
    }
    
    /**
     * Sets (as xml) the "DEFERPCTAFTERTAX" element
     */
    public void xsetDEFERPCTAFTERTAX(net.ofx.types.x2003.x04.RateType deferpctaftertax)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.RateType target = null;
            target = (net.ofx.types.x2003.x04.RateType)get_store().find_element_user(DEFERPCTAFTERTAX$12, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.RateType)get_store().add_element_user(DEFERPCTAFTERTAX$12);
            }
            target.set(deferpctaftertax);
        }
    }
    
    /**
     * Unsets the "DEFERPCTAFTERTAX" element
     */
    public void unsetDEFERPCTAFTERTAX()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(DEFERPCTAFTERTAX$12, 0);
        }
    }
    
    /**
     * Gets the "MATCHINFO" element
     */
    public net.ofx.types.x2003.x04.MatchInfo getMATCHINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.MatchInfo target = null;
            target = (net.ofx.types.x2003.x04.MatchInfo)get_store().find_element_user(MATCHINFO$14, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "MATCHINFO" element
     */
    public boolean isSetMATCHINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(MATCHINFO$14) != 0;
        }
    }
    
    /**
     * Sets the "MATCHINFO" element
     */
    public void setMATCHINFO(net.ofx.types.x2003.x04.MatchInfo matchinfo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.MatchInfo target = null;
            target = (net.ofx.types.x2003.x04.MatchInfo)get_store().find_element_user(MATCHINFO$14, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.MatchInfo)get_store().add_element_user(MATCHINFO$14);
            }
            target.set(matchinfo);
        }
    }
    
    /**
     * Appends and returns a new empty "MATCHINFO" element
     */
    public net.ofx.types.x2003.x04.MatchInfo addNewMATCHINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.MatchInfo target = null;
            target = (net.ofx.types.x2003.x04.MatchInfo)get_store().add_element_user(MATCHINFO$14);
            return target;
        }
    }
    
    /**
     * Unsets the "MATCHINFO" element
     */
    public void unsetMATCHINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(MATCHINFO$14, 0);
        }
    }
    
    /**
     * Gets the "CONTRIBINFO" element
     */
    public net.ofx.types.x2003.x04.ContributionInfo getCONTRIBINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.ContributionInfo target = null;
            target = (net.ofx.types.x2003.x04.ContributionInfo)get_store().find_element_user(CONTRIBINFO$16, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "CONTRIBINFO" element
     */
    public boolean isSetCONTRIBINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(CONTRIBINFO$16) != 0;
        }
    }
    
    /**
     * Sets the "CONTRIBINFO" element
     */
    public void setCONTRIBINFO(net.ofx.types.x2003.x04.ContributionInfo contribinfo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.ContributionInfo target = null;
            target = (net.ofx.types.x2003.x04.ContributionInfo)get_store().find_element_user(CONTRIBINFO$16, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.ContributionInfo)get_store().add_element_user(CONTRIBINFO$16);
            }
            target.set(contribinfo);
        }
    }
    
    /**
     * Appends and returns a new empty "CONTRIBINFO" element
     */
    public net.ofx.types.x2003.x04.ContributionInfo addNewCONTRIBINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.ContributionInfo target = null;
            target = (net.ofx.types.x2003.x04.ContributionInfo)get_store().add_element_user(CONTRIBINFO$16);
            return target;
        }
    }
    
    /**
     * Unsets the "CONTRIBINFO" element
     */
    public void unsetCONTRIBINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(CONTRIBINFO$16, 0);
        }
    }
    
    /**
     * Gets the "CURRENTVESTPCT" element
     */
    public java.lang.String getCURRENTVESTPCT()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(CURRENTVESTPCT$18, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "CURRENTVESTPCT" element
     */
    public net.ofx.types.x2003.x04.RateType xgetCURRENTVESTPCT()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.RateType target = null;
            target = (net.ofx.types.x2003.x04.RateType)get_store().find_element_user(CURRENTVESTPCT$18, 0);
            return target;
        }
    }
    
    /**
     * True if has "CURRENTVESTPCT" element
     */
    public boolean isSetCURRENTVESTPCT()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(CURRENTVESTPCT$18) != 0;
        }
    }
    
    /**
     * Sets the "CURRENTVESTPCT" element
     */
    public void setCURRENTVESTPCT(java.lang.String currentvestpct)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(CURRENTVESTPCT$18, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(CURRENTVESTPCT$18);
            }
            target.setStringValue(currentvestpct);
        }
    }
    
    /**
     * Sets (as xml) the "CURRENTVESTPCT" element
     */
    public void xsetCURRENTVESTPCT(net.ofx.types.x2003.x04.RateType currentvestpct)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.RateType target = null;
            target = (net.ofx.types.x2003.x04.RateType)get_store().find_element_user(CURRENTVESTPCT$18, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.RateType)get_store().add_element_user(CURRENTVESTPCT$18);
            }
            target.set(currentvestpct);
        }
    }
    
    /**
     * Unsets the "CURRENTVESTPCT" element
     */
    public void unsetCURRENTVESTPCT()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(CURRENTVESTPCT$18, 0);
        }
    }
    
    /**
     * Gets array of all "VESTINFO" elements
     */
    public net.ofx.types.x2003.x04.VestInfo[] getVESTINFOArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(VESTINFO$20, targetList);
            net.ofx.types.x2003.x04.VestInfo[] result = new net.ofx.types.x2003.x04.VestInfo[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }
    
    /**
     * Gets ith "VESTINFO" element
     */
    public net.ofx.types.x2003.x04.VestInfo getVESTINFOArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.VestInfo target = null;
            target = (net.ofx.types.x2003.x04.VestInfo)get_store().find_element_user(VESTINFO$20, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }
    
    /**
     * Returns number of "VESTINFO" element
     */
    public int sizeOfVESTINFOArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(VESTINFO$20);
        }
    }
    
    /**
     * Sets array of all "VESTINFO" element
     */
    public void setVESTINFOArray(net.ofx.types.x2003.x04.VestInfo[] vestinfoArray)
    {
        synchronized (monitor())
        {
            check_orphaned();
            arraySetterHelper(vestinfoArray, VESTINFO$20);
        }
    }
    
    /**
     * Sets ith "VESTINFO" element
     */
    public void setVESTINFOArray(int i, net.ofx.types.x2003.x04.VestInfo vestinfo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.VestInfo target = null;
            target = (net.ofx.types.x2003.x04.VestInfo)get_store().find_element_user(VESTINFO$20, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(vestinfo);
        }
    }
    
    /**
     * Inserts and returns a new empty value (as xml) as the ith "VESTINFO" element
     */
    public net.ofx.types.x2003.x04.VestInfo insertNewVESTINFO(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.VestInfo target = null;
            target = (net.ofx.types.x2003.x04.VestInfo)get_store().insert_element_user(VESTINFO$20, i);
            return target;
        }
    }
    
    /**
     * Appends and returns a new empty value (as xml) as the last "VESTINFO" element
     */
    public net.ofx.types.x2003.x04.VestInfo addNewVESTINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.VestInfo target = null;
            target = (net.ofx.types.x2003.x04.VestInfo)get_store().add_element_user(VESTINFO$20);
            return target;
        }
    }
    
    /**
     * Removes the ith "VESTINFO" element
     */
    public void removeVESTINFO(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(VESTINFO$20, i);
        }
    }
    
    /**
     * Gets array of all "LOANINFO" elements
     */
    public net.ofx.types.x2003.x04.LoanInfo[] getLOANINFOArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(LOANINFO$22, targetList);
            net.ofx.types.x2003.x04.LoanInfo[] result = new net.ofx.types.x2003.x04.LoanInfo[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }
    
    /**
     * Gets ith "LOANINFO" element
     */
    public net.ofx.types.x2003.x04.LoanInfo getLOANINFOArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.LoanInfo target = null;
            target = (net.ofx.types.x2003.x04.LoanInfo)get_store().find_element_user(LOANINFO$22, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }
    
    /**
     * Returns number of "LOANINFO" element
     */
    public int sizeOfLOANINFOArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(LOANINFO$22);
        }
    }
    
    /**
     * Sets array of all "LOANINFO" element
     */
    public void setLOANINFOArray(net.ofx.types.x2003.x04.LoanInfo[] loaninfoArray)
    {
        synchronized (monitor())
        {
            check_orphaned();
            arraySetterHelper(loaninfoArray, LOANINFO$22);
        }
    }
    
    /**
     * Sets ith "LOANINFO" element
     */
    public void setLOANINFOArray(int i, net.ofx.types.x2003.x04.LoanInfo loaninfo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.LoanInfo target = null;
            target = (net.ofx.types.x2003.x04.LoanInfo)get_store().find_element_user(LOANINFO$22, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(loaninfo);
        }
    }
    
    /**
     * Inserts and returns a new empty value (as xml) as the ith "LOANINFO" element
     */
    public net.ofx.types.x2003.x04.LoanInfo insertNewLOANINFO(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.LoanInfo target = null;
            target = (net.ofx.types.x2003.x04.LoanInfo)get_store().insert_element_user(LOANINFO$22, i);
            return target;
        }
    }
    
    /**
     * Appends and returns a new empty value (as xml) as the last "LOANINFO" element
     */
    public net.ofx.types.x2003.x04.LoanInfo addNewLOANINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.LoanInfo target = null;
            target = (net.ofx.types.x2003.x04.LoanInfo)get_store().add_element_user(LOANINFO$22);
            return target;
        }
    }
    
    /**
     * Removes the ith "LOANINFO" element
     */
    public void removeLOANINFO(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(LOANINFO$22, i);
        }
    }
    
    /**
     * Gets the "INV401KSUMMARY" element
     */
    public net.ofx.types.x2003.x04.Investment401KSummary getINV401KSUMMARY()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.Investment401KSummary target = null;
            target = (net.ofx.types.x2003.x04.Investment401KSummary)get_store().find_element_user(INV401KSUMMARY$24, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "INV401KSUMMARY" element
     */
    public boolean isSetINV401KSUMMARY()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(INV401KSUMMARY$24) != 0;
        }
    }
    
    /**
     * Sets the "INV401KSUMMARY" element
     */
    public void setINV401KSUMMARY(net.ofx.types.x2003.x04.Investment401KSummary inv401KSUMMARY)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.Investment401KSummary target = null;
            target = (net.ofx.types.x2003.x04.Investment401KSummary)get_store().find_element_user(INV401KSUMMARY$24, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.Investment401KSummary)get_store().add_element_user(INV401KSUMMARY$24);
            }
            target.set(inv401KSUMMARY);
        }
    }
    
    /**
     * Appends and returns a new empty "INV401KSUMMARY" element
     */
    public net.ofx.types.x2003.x04.Investment401KSummary addNewINV401KSUMMARY()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.Investment401KSummary target = null;
            target = (net.ofx.types.x2003.x04.Investment401KSummary)get_store().add_element_user(INV401KSUMMARY$24);
            return target;
        }
    }
    
    /**
     * Unsets the "INV401KSUMMARY" element
     */
    public void unsetINV401KSUMMARY()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(INV401KSUMMARY$24, 0);
        }
    }
}
